梦想不会自己发光,真正闪耀的是那个为梦狂奔的你。献给知行的孩子们!(Eric.He著)
本教程将从 C++ 关键字、标识符、常量、变量的核心概念出发,详细讲解常量的分类与定义、变量的定义规则,帮助你掌握 C++ 编程中最基础的数值存储与表示方式。
关键字(Keyword)是 C++ 语言预先定义、具有特殊含义的保留字,不能作为标识符使用(如变量名、函数名等)。关键字是构成 C++ 语法规则的基础,编译器会根据关键字识别代码的语义。
常见 C++ 基础关键字示例:
int、float、char、double、boolconst、staticif、else、for、whilereturn、void、class、struct注意:C++ 关键字区分大小写,例如 int 是关键字,而 Int 或 INT 不是。
标识符(Identifier)是程序员自定义的名称,用于标识变量、常量、函数、类、结构体等程序元素。简单来说,标识符就是编程中给各种“元素”起的名字。
例如:定义变量 int age = 18; 中,age 就是标识符;定义常量 const float PI = 3.14; 中,PI 也是标识符。
常量(Constant)是程序运行过程中值不能被修改的量,代表固定不变的数值或字符。常量在定义时必须初始化,且初始化后无法更改。
例如:圆周率 3.14、数字 100、字符 'A' 都是常量;通过 const 定义的 const int MAX = 100; 中,MAX 也是常量(值固定为100)。
变量(Variable)是程序运行过程中值可以被修改的量,用于存储程序运行时的临时数据。变量本质上是内存中的一块存储空间,通过变量名可以访问和修改这块空间中的值。
例如:定义 int score = 90; 后,可通过 score = 95; 修改其值,score 就是变量。
一个常量可以直接使用(如:123,'A'),也可以给常量取个名字用一个标识符代表它,这就是符号常量。
格式:const 数据类型 符号常量 = 常量字串;
例如:const double PI = 3.14159;
实例中的PI代表常量3.14159,在编译源程序时,遇到PI就用常量3.14159代替,PI可以和常量一样进行运算。符号常量只能在定义时赋值,以后不能被再赋值。
习惯上,符号常量名用大写,而变量名用小写,以便于区别。
使用符号常量的好处:
整数常量是没有小数部分的数值常量,C++ 支持十进制、八进制、十六进制三种表示形式:
| 进制类型 | 标识 | 取值范围 | 示例 |
|---|---|---|---|
| 十进制 | 无前缀,由 0-9 组成(不能以0开头) | 0-9、正负整数 | 123、-45、0、999 |
| 八进制 | 以 0 为前缀,由 0-7 组成 | 0-7 组成的数字 | 012(对应十进制10)、077(对应十进制63) |
| 十六进制 | 以 0x/0X 为前缀,由 0-9、a-f/A-F 组成 | 0-9、a-f(大小写均可) | 0x1A(对应十进制26)、0XFF(对应十进制255) |
整数常量示例代码:
#include <iostream>
using namespace std;
int main() {
// 十进制整数常量
const int DECNUM = 123;
// 八进制整数常量(0前缀)
const int OCTNUM = 012;
// 十六进制整数常量(0x前缀)
const int HEXNUM = 0x1A;
cout << "十进制 123 = " << DECNUM << endl;
cout << "八进制 012 = " << OCTNUM << "(十进制)" << endl;
cout << "十六进制 0x1A = " << HEXNUM << "(十进制)" << endl;
return 0;
}
输出结果:
十进制 123 = 123
八进制 012 = 10(十进制)
十六进制 0x1A = 26(十进制)
实型常量(浮点型常量)是带有小数部分的数值常量,C++ 支持小数形式和科学计数法形式两种表示方式:
e/E 表示指数,格式为 数字e/E±指数,例如 3.14e2(3.14×10²=314)、1.23E-3(1.23×10⁻³=0.00123)实型常量示例代码:
#include <iostream>
using namespace std;
int main() {
// 小数形式实型常量
const float NUM1 = 3.14f;
const double NUM2 = 0.5;
// 科学计数法形式实型常量
const double NUM3 = 1.23E-3;
cout << "3.14f = " << NUM1 << endl;
cout << "0.5 = " << NUM2 << endl;
cout << "1.23E-3 = " << NUM3 << endl;
return 0;
}
输出结果:
3.14f = 3.14
0.5 = 0.5
1.23E-3 = 0.00123
注意:定义 float 类型常量时,建议在数值后加 f(如 3.14f),否则编译器会默认将实型常量视为 double 类型。
字符常量是用单引号 ' ' 包裹的单个字符,C++ 中字符常量分为普通字符常量和转义字符常量:
| 类型 | 格式 | 示例 | 说明 |
|---|---|---|---|
| 普通字符常量 | 单引号包裹单个字符 | 'A'、'5'、'+'、' ' | 包含字母、数字、符号、空格等 |
| 转义字符常量 | 以 \ 开头的特殊字符 | '\n'、'\t'、'\\'、'\'' | 表示不可打印或特殊含义的字符 |
常见转义字符对照表:
\n:换行符\t:制表符(Tab键)\\:反斜杠本身\':单引号本身\":双引号本身\0:空字符(字符串结束标志)字符常量示例代码:
#include <iostream>
using namespace std;
int main() {
// 普通字符常量
const char CH1 = 'A';
const char CH2 = '5';
const char CH3 = ' ';
// 转义字符常量
const char CH4 = '\n';
const char CH5 = '\t';
cout << "字符A:" << CH1 << endl;
cout << "数字5:" << CH2 << CH4; // 输出5后换行
cout << "制表符:" << CH5 << "制表后内容" << endl;
cout << "反斜杠:" << '\\' << endl;
return 0;
}
输出结果:
字符A:A
数字5:5
制表符: 制表后内容
反斜杠:\
变量 代表了一个存储单元,其中的值是可以改变的,因此称为变量。
一个程序中可能要使用到若干个变量,为了区别不同的变量,必须给每天个变量取一个名,称为变量名,该变量存储的值称为变量值,变量中能够存储值的类型为变量的数据类型。
格式1:数据类型 变量名;
例如:int age; //表示能存储年龄的变量
格式2:数据类型 变量名 = 变量值;
例如:int age = 18; //表示能存储年龄的变量,初始变量值为18
格式3:数据类型 变量名列表;
例如:int age,height,weight; //表示定义三个变量分别用于存储年龄、身高、体重。
格式4:数据类型 变量名1=变量值1,变量名2=变量值2,......,变量名n=变量值n;
例如:int age=18,height=180,weight=140; //表示定义三个变量分别用于存储年龄、身高、体重,初始变量值分别为18,180,140。
变量的数据类型决定了变量占用的内存大小、可存储的数据范围,以及能进行的运算。C++ 核心变量的数据类型分为以下几类(后续有专门教程详细讲解):
int(整型)、short(短整型)、long(长整型)、long long(超长整型)float(单精度浮点型)、double(双精度浮点型)char(字符型)bool(布尔型,取值 true/false)不同类型变量定义示例:
// 整型变量
int num = 100;
// 浮点型变量
float pi = 3.14f;
double price = 99.99;
// 字符型变量
char ch = 'B';
// 布尔型变量
bool isPass = true;
变量名是标识变量的标识符,是程序员给变量起的“名字”,用于访问内存中的存储值。变量名的定义需遵循标识符命名规则(见3.3),且应做到“见名知意”。
规范的变量名示例:
// 见名知意的变量名
int age = 18; // 年龄
float height = 1.75f;// 身高
char gender = 'M'; // 性别
string name = "张三";// 姓名
不规范的变量名示例(不推荐):
// 无意义的变量名,可读性差
int a = 18;
float b = 1.75f;
char c = 'M';
变量名、常量名、函数名等所有标识符的命名必须遵循以下规则,否则编译器会报错:
age 和 Age 是两个不同的标识符);| 合法标识符 | 非法标识符 | 非法原因 |
|---|---|---|
| age、_score、stu_name、Num123 | 123num | 以数字开头 |
| PI、MAX_VALUE、getAge | int、float、if | 使用关键字 |
| height_cm、is_valid | height-cm、stu name | 包含减号、空格等非法字符 |
合法与非法变量名示例:
#include <iostream>
using namespace std;
int main() {
// 合法变量名
int age = 18;
int _score = 90;
int stuName = 85;
// 非法变量名(以下代码会报错)
// int 123age = 75; // 以数字开头
// int int = 60; // 使用关键字
// int stu-name = 88;// 包含非法字符(减号)
cout << "年龄:" << age << endl;
return 0;
}
const int MAX; 报错,const int MAX = 100; 合法);'A'),字符串用双引号("A"),不可混用;age 和 Age 是两个独立的变量,建议统一命名风格(如小写+下划线、驼峰命名);'\'' 表示单引号)。常量和变量是 C++ 编程的基础,掌握其定义、分类和使用规则,是编写正确、规范 C++ 代码的第一步。后续教程将深入讲解变量类型、类型转换等进阶内容。